﻿namespace ScrumLite.Services
{
    using System;
    using Contracts;
    using System.Collections.Generic;
    using System.ServiceModel;

    [ServiceContract()]
    public interface ICommitmentsService
    {
        [OperationContract]
        DateTime[] GetStandupDates(string projectId);

        [OperationContract]
        Commitment[] GetCommitments(DateTime commitmentDate, string projectId);

        [OperationContract]
        Commitment GetCommitment(Guid commitmentId);

        [OperationContract]
        Dictionary<int, int> GetWeeklyCommitmentsCount(string projectId, bool closed);

        [OperationContract]
        void Add(string projectId, Commitment commitment);
        
        [OperationContract]
        void Delete(Guid id);

        [OperationContract]
        void Update(Commitment commitment);
    }
}
